A data communication network may include multiple talkers (or sources of data) and multiple receivers. Any number of bridges (or switches) may be connected between each of the talkers and the receivers. The data communication network may be an arbitrary network (referred to as a non-engineered network) or non-arbitrary network (referred to as an engineered network). An arbitrary network may be, for example, a residential local area network (LAN), which may have different network devices (e.g., computers, cellular phones, televisions, printers, and electronic tablets) arbitrarily connecting and disconnecting at various points in the network and at random times. The network devices may connect and disconnect at any time regardless of the priority levels of data being transmitted in the arbitrary network.
A non-arbitrary network may be, for example, an automotive network within a vehicle or a manufacturing assembly line network. In general, network devices in a non-arbitrary network are fixed and are not being connected and/or disconnected from the non-arbitrary network. Although network devices may be connected to and/or disconnected from a non-arbitrary network, communication with a network device that is being connected to or disconnected from the non-arbitrary network is given lower priority during transmission periods of high-priority data. During these transmission periods, high-priority data is transmitted between network devices in the non-arbitrary network.
For example, a non-arbitrary Ethernet network that is operating according to Institute of Electrical and Electronics Engineers (IEEE) 802.1 Qav and/or Qbv may include a talker (or source), multiple bridges and a listener (or receiver). The talker may transmit high-priority data to the listener over the bridges during allocated transmission periods of periodic transmission time intervals. High-priority data may refer to, for example, Class A or Class B data with low-latency requirements. The term latency refers to time for a high-priority frame to be transmitted through one or more hops of the non-arbitrary network. The latency of a single hop is measured from a time when a last bit of a high-priority frame is received by a network device for that hop to a time when the last bit is transmitted from the network device. Simply stated, the latency of a single hop is measured from the last bit into the network device to the last bit out of the network device. A single hop may refer to a talker (referred to as an end station) or a bridge of the non-arbitrary network.
In a non-arbitrary Ethernet network, transmitted data may have, for example, one of three to eight priority levels. Class A data may include audio video bridging (AVB) data with a highest priority level. The highest priority is used to insure the lowest latency. Although AVB data may include audio data and/or video data, AVB data may also include control data, user data, reference data, or other types of data. The highest priority level data may be provided with a predetermined amount of bandwidth and a predetermined maximum latency. This assures that the Class A data is transmitted during allocated time periods and latency associated with transmitting the Class A data over a predetermined number of hop(s) and/or between end stations is less than the predetermined maximum latency. Class B data may be AVB data with a next highest priority level. All Non-AVB data use the remaining lower priority levels. In general, higher priority data is transmitted before lower priority data. If a device supports less than the maximum eight priority levels the IEEE 802.1 Qav standard defines how the eight external priorities are to be mapped to the number of priorities supported by the device. In all cases Class A is the highest.
IEEE AVB standards define a set of standards that when used together support guaranteed bandwidth and latency for reserved AVB streams over various networking media, such as networking media satisfying IEEE 802.3 Ethernet standards. The IEEE 802.1 Qav standard requires that a bridge reshape (i.e., spread out) an AVB stream passing through the bridge. This is done on a per-class basis in a bridge. Since AVB supports two classes of data, namely Class A and Class B, two Qav shapers are needed per egress port in a bridge.
FIG. 1 shows an example of a conventional bridge 100 configured for use according to the IEEE 802.1 Qav standard. Although the bridge 100 is shown having a certain number of ingress ports and egress ports, the bridge 100 may have additional ingress and/or egress ports. The bridge 100 includes ingress ports Pu-Py, an ingress module 104, and an egress module 108. The ingress module 104 receives data from the ports Pu-Py and can store the data in a memory 112. The egress module 108 can include, for example, a Class A queue 116, a Class B queue 120 and non-AVB queues 124 per egress port. The queues 116, 120, 124 receive data from the ingress module 104 and store data of the respective Classes A, B, non-AVB.
The egress module 108 further includes Class shapers (identified as Class shapers fQ), a selector module 128, a multiplexer 132 and an output port 136. The Class shapers fQ are provided for AVB data including Class A data and Class B data. The Class shapers fQ shape (or spread out) respectively the Class A data and the Class B data received from a corresponding one of the Class A queue and Class B queue. As a result, the data is shaped on a per-class basis. The Class A data and the Class B data are independently spread out over time at respective rates of the Class shapers fQ. The selector module 128 signals the multiplexer 132 to select data from one of the Class shapers fQ or the non-AVB queues 124 to provide to the output port 136.